package org.dromara.admin.domain.vo;

import org.dromara.admin.domain.Employee;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.admin.enums.GeneralEnum;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 员工信息视图对象 bi_employee
 *
 * @author Lion Li
 * @date 2025-10-10
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = Employee.class)
public class EmployeeVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 员工唯一ID
     */
    @ExcelProperty(value = "员工唯一ID")
    private Long id;

    /**
     * 关联主体ID（归属主体，关联bi_company.id）
     */
    @ExcelProperty(value = "关联主体ID", converter = ExcelDictConvert.class)
    private Long companyId;

    /**
     * 账号（登录账号，唯一）
     */
    @ExcelProperty(value = "账号", converter = ExcelDictConvert.class)
    private String userName;

    /**
     * 手机号
     */
    @ExcelProperty(value = "手机号", converter = ExcelDictConvert.class)
    private String phone;

    /**
     * 密码（明码）
     */
    @ExcelProperty(value = "密码", converter = ExcelDictConvert.class)
    private String password;

    /**
     * 员工姓名
     */
    @ExcelProperty(value = "员工姓名")
    private String realName;

    /**
     * 角色：ADMIN-管理，EMPLOYEE-员工
     */
    @ExcelProperty(value = "角色：ADMIN-管理，EMPLOYEE-员工")
    private GeneralEnum role;

    /**
     * 状态：Y-正常，N-冻结
     */
    @ExcelProperty(value = "状态：Y-正常，N-冻结")
    private GeneralEnum status;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 公司主体信息
     */
    @ExcelProperty(value = "公司主体信息")
    private CompanyVo company;

}
